技術問答
技術文章
iT 徵才
Tag
聊天室
2024 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
2024 iThome 鐵人賽
DAY
10
0
自我挑戰組
技術隨筆
系列 第
10
篇
資料同步的實作選擇
16th鐵人賽
sixwings
2024-09-24 23:57:28
65 瀏覽
分享至
當專案需要保存外部資料源而且需要確保外部資料源維持在最新狀態時,就會需要作資料同步的動作。以下簡介可以選擇的幾種作法(本篇屬筆記性質,供參)
輪詢 polling: 最常見的作法,一樣維持原本 request 取得資料的方式,最容易實作,但對於外部資料源的伺服器負擔比較大
伺服器推送 Server-Sent Events: 由 client 發起,但能夠達到伺服器推送資料效果的作法,比 websocket 的複雜度低,但是不支援雙向傳輸
WebSocket: 可以實現資料同步的需求,在資料變更時能夠主動告知 client
Webhooks: 高效的實作,但 client 需要支援 POST request, 而且有相對的安全議題需要注意
額外的優化項目
使用分頁參數: 降低資料傳輸量
使用 updated_at 過濾掉已同步過的資料內容
把「資料刪除」也視為一種異動,返回資料刪除的標記代表刪除
使用更動標記提示內容有改動的資料欄位
根據資料異動的頻率調整 polling 的週期
留言
追蹤
檢舉
上一篇
沒有 docker registry 要怎麼保存 image? - 低配版 docker image 管理方法
下一篇
安全性 UP - 避免 root 帳號打通關
系列文
技術隨筆
共
30
篇
目錄
RSS系列文
訂閱系列文
2
人訂閱
26
Laravel 11 升級指南 & 版本管理策略
27
透過 Protobuf 改善 JWT 傳輸性能是可行的嗎?
28
PHP 未來可能支援原生的事件迴圈嗎?
29
OAuth 在 2024 年的發展現況
30
古老但值得學習的技術 - Lisp
完整目錄
直播研討會
{{ item.subject }}
{{ item.channelVendor }}
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
1064
組
團體組數
40
組
累計文章數
22081
篇
完賽人數
594
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
看更多
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
windows server
linux
css
react
vue.js
熱門問題
WIN11 一直跳出中毒的訊息
資料庫系統
網域切換的技術詢問
PYTHON 工具
如何讓內網的FortiGate防火牆可以收到韌體更新與下載
請問華碩分享器的系統紀錄這是在說明什麼
Mail server 資料不見
掃qr code圖示後是同時進入兩個網址
UPS相關供電問題
有關於Plesk 記憶體使用 的疑惑
熱門回答
WIN11 一直跳出中毒的訊息
如何讓內網的FortiGate防火牆可以收到韌體更新與下載
資料庫系統
自家網站DNS連線逾時會載入很慢
PYTHON 工具
熱門文章
PrintNightmare: 沒想到會被 Windows 11 終結
Day 39 - 使用 Angular 19 中的 Resource API 進行資料檢索
後 Grafana 時代的第三十一天 - AlertSnitch 告警歷史可視化的利器
Day 38 - 在 Angular 19 中重置或設定 LinkedSignal 中的值
當了兩個月的轉職工程師是怎樣的感覺?
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}